#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Software: PyCharm
# @Time    : 2019/11/21 16:02
# @Author  : linjinting
# @Site    : 
# @Software: PW4Adatatool
# @File    : excelparse.py
# @Function:

import TTLPandas as tpd

# from profilehooks import profile



class ExcelParse(object):
    def __init__(self):
        self.pdb = tpd.Pandans4AData()
        pass


    def parse(self, file, colnames=None, **kwargs ):
        """
        # 解析表格内容，
        :param file: 文件
        :param colnames: 刷选列，列表形式
        :param kwargs: 刷选值，字典形式
        :return: 数据或者 -1
        """
        #"人员数据\组织信息.xlsx"
        ret = self.pdb.read_file(file)
        # ret2 = pdb.read_file_full("123.xls")
        if ret == 1:
            if colnames:
                self.pdb.filter_column(colnames)
            self.pdb.filter_data(**kwargs)
            return self.pdb.get_data_frame()
        else:
            return ret


    def link_tables(self, r_df, key, l_df=None, colnames=None, isdrop=False,resetindex=False):
        """
        # 连接两个表信息，join形式，默认左连接
        :param r_df: 左连接从表
        :param key: 索引键值
        :param l_df:左连接主表
        :param colnames: 需要刷选的列，list形式
        :param isdrop: 是否过滤掉有NAN的行
        :param resetindex: 是否重置index
        :return: dataframe
        """
        self.pdb.left_join(r_df, key, l_df)

        if colnames:
            self.pdb.filter_column(colnames)
        if isdrop:
            self.pdb.dropna_axis_any()
            # self.pdb.set_nan_data()
        if resetindex:
            self.pdb.reset_index()
        return self.pdb.get_data_frame()


if __name__ == '__main__':
    ep = ExcelParse()
    ###解析组织信息表，
    file = "人员数据\组织信息.xlsx"
    columns = ['ORG_ID', 'ORG_NAME', 'ORG_CODE', 'ORG_STRUCTURE_ID', 'PARENT_ORG_ID', 'NAME_FULL_PATH', 'STATE']
    dep_df = ep.parse(file, ORG_STRUCTURE_ID='A', STATE=1)
    print(dep_df)

    ###解析员信息表，
    file = "人员数据\人员信息.xlsx"
    columns = ['EMPLOYEE_ID', 'EMPLOYEE_NAME', 'EMPLOYEE_ACCOUNT', 'STATE']
    person_df = ep.parse(file, columns, STATE=1)
    print(person_df)

    ###解析员信息表，
    file = "人员数据\用户信息.xlsx"
    columns = ['EMPLOYEE_ID', 'ORG_ID', 'STATE']
    user_df = ep.parse(file, columns, STATE=1)
    print(user_df)


        # print(type(id))